# 列表生成式
print('#############生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]#############')
print(list(range(1, 11)))
print('#############生成[1x1, 2x2, 3x3, ..., 10x10]，方法一：使用循环#############')
L = []
for i in range(1, 11):
    L.append(i * i)
print(L)
print('#############生成[1x1, 2x2, 3x3, ..., 10x10]，方法二：不使用循环（运用列表生成式）#############')
print([x * x for x in range(1, 11)])
print('#############for循环后面还可以加上if判断，这样我们就可以筛选出仅偶数的平方：#############')
print([x * x for x in range(1, 11) if x % 2 == 0])
print('#############还可以使用两层循环，可以生成全排列：#############')
print([x + y for x in '789' for y in '123'])
print('#############运用列表生成式，可以写出非常简洁的代码。#############')
# 导入模块
import os

print([d for d in os.listdir('../../.')])
d = {'a': '98', 'b': '80', 'c': '78', 'd': "db", "e": "abaj", '9': "fh"}
print([k + '=' + v for k, v in d.items()])
print([(k, v) for k, v in d.items()])
print('#############运用列表生成式，将列表中的大写字母转化为小写。#############')
L = ['Hello', 'World', 'IBM', 'Apple']
print([s.lower() for s in L])
print('#############请修改列表生成式，通过添加if语句保证列表生成式能正确地执行。#############')
L1 = ['Hello', 'World', 18, 'Apple', None]
print([s.lower() for s in L1 if isinstance(s, str)])
